package io;

import java.io.Serializable;
import java.util.List;

/**
 *
 * @author Mariano Zapata
 */
public class Carpeta extends Identificable implements Serializable {
    
    private String nombre;
    private List<Carpeta> hijosCarpeta;
    private List<Cliente> hijosCliente;
    private List<Archivo> hijosArchivo;
    private Expediente expediente;
    private boolean poseeHijos;
    private boolean esExpediente;
    private int duenio;
    
    public Carpeta(List<Long> ruta)
    {
        super(ruta);
        nombre= "";
        poseeHijos= false;
        esExpediente= false;
        duenio= -1;
        hijosCarpeta= null;
        hijosCliente= null;
        hijosArchivo= null;
        expediente= null;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public List<Archivo> getHijosArchivo() {
        return hijosArchivo;
    }

    public void setHijosArchivo(List<Archivo> hijosArchivo) {
        this.hijosArchivo = hijosArchivo;
    }

    public List<Carpeta> getHijosCarpeta() {
        return hijosCarpeta;
    }

    public void setHijosCarpeta(List<Carpeta> hijosCarpeta) {
        this.hijosCarpeta = hijosCarpeta;
    }

    public List<Cliente> getHijosCliente() {
        return hijosCliente;
    }

    public void setHijosCliente(List<Cliente> hijosCliente) {
        this.hijosCliente = hijosCliente;
    }

    public boolean poseeHijos() {
        return poseeHijos;
    }

    public void setPoseeHijos(boolean poseeHijos) {
        this.poseeHijos = poseeHijos;
    }

    public boolean esExpediente() {
        return esExpediente;
    }

    public void setEsExpediente(boolean esExpediente) {
        this.esExpediente = esExpediente;
    }

    public Expediente getExpediente() {
        return expediente;
    }

    public void setExpediente(Expediente expediente) {
        this.expediente = expediente;
    }

    public int getDuenio() {
        return duenio;
    }

    public void setDuenio(int duenio) {
        this.duenio = duenio;
    }

    @Override
    public String toString() {
        if (nombre.length() > 30)
            return nombre.substring(0, 31) + "...";
        else
            return nombre;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }
}
